package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootBfMvp;
import org.footballmanager.pandafootball.system.domain.FootBfinfo;
import org.footballmanager.pandafootball.system.form.impl.FootBfMvpSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootBfMvpService extends BaseService<FootBfMvp> {
    /**
     * 查询
     *
     * @param entityname          实体类名
     * @param map                 参数
     * @param footBfMvpSearchForm 条件
     */
    void search(String entityname, Model map, FootBfMvpSearchForm footBfMvpSearchForm);

    /**
     * 删除所有
     *
     * @param footBfMvpSearchForm 条件
     * @param request             请求
     */
    void deleteAll(FootBfMvpSearchForm footBfMvpSearchForm, HttpServletRequest request);

    /**
     * 根据报分主键获取MVP信息
     *
     * @param bfId 报分主键
     * @return MVP信息
     */
    FootBfMvp findByBfId(Long bfId);

    /**
     * 根据报分主键和球员关系主键查找记录数量
     *
     * @param bfId  报分主键
     * @param fupId 球员关系主键
     * @return 记录数量
     */
    Integer findByBfIdAndMvpId(Long bfId, Long fupId);

    /**
     * 保存记录（放到redis里）
     *
     * @param team    球队主键
     * @param id      球员关系主键
     * @param request 请求
     */
    void saveEntityTemp(Long team, Long id, HttpServletRequest request);

    /**
     * 从redis里取出并保存记录
     *
     * @param footBfinfo 报分实体类
     * @param request    请求
     */
    void saveEntity(FootBfinfo footBfinfo, HttpServletRequest request);

    /**
     * MVP榜
     * @return
     */
    List<FootBfMvp> findMvpTop10();
}